在 Google Play 上保护您的游戏与用户
作者 / Dom Elliott, Google Play 产品经理
在打造出一款优秀的游戏后,开发者们都希望能够网罗四海玩家,并为他们带去流畅安心的预期体验。不过,开发者们也同时面临着喜忧参半的困境: 游戏越受欢迎,就越容易引起攻击者和滥用者的注意。人们会出于各种目的尝试篡改您的游戏或者滥用您的分发及获利渠道: 其中一些可能相对无害,而另一些则可能会对您的玩家和业务产生负面影响。
因此,制定正确的反滥用策略并根据目标迅速采取行动非常重要。虽然目前还没有方案能够完美解决游戏的安全问题,不过我们建议大家在规划整体战略时,不妨参考以下推荐的 Google Play 工具和服务,为您的游戏和玩家带去更强大的安全防护。
完整性
△ 该视频所推荐的 Google Play 工具可帮助您有效保护游戏的完整性
腾讯视频链接
https://v.qq.com/x/page/n0947ubr1rs.html
Bilibili 视频链接
https://www.bilibili.com/video/BV1q5411t78h/
在服务器端手动检查完整性
Google Play 应用许可服务
https://developer.android.google.cn/google/play/licensing
SafetyNet attestation
https://developer.android.google.cn/training/safetynet/attestation.html
生成 Nonce: 在您的服务器上生成一个 Nonce 以启动检查。Nonce 是您为各项检查附加的唯一随机字符串,它可确保攻击者难以在重放攻击中复制一个正响应。请尽量使用特定于请求的信息 (如用户 ID 的哈希值),以确保不会重复使用同一个 Nonce;
请求响应: 请将生成的 Nonce 附加到游戏检查中,并调用应用许可和 SafetyNet API。您必须使用 API 密钥才能集成 SafetyNet,且每天的默认请求配额为 10,000 次。如果您的应用需要增加配额,请提出请求;
接收响应: API 与 Google 服务器进行通信时,Google 服务器通过返回一个响应,告知您当前用户是否从 Google Play 获得应用许可,以及设备是否为通过兼容性测试的 Android 实体设备。为避免过度调用,SafetyNet 有时会出现响应超时的情况,因此,还请您针对该意外情况进行规划并做好相应的准备;
传输响应: 您的游戏会将 Google 响应和 Nonce 一同发送回您的服务器上。请务必在服务器端执行验证流程,使攻击者更难从游戏中移除检查;
评估响应: 您的服务器应确保所有内容有效,包括 Nonce、应用包名称及哈希值、时间戳,然后再根据 Google 的响应对许可与设备进行评估。例如,若用户拥有有效许可且设备可信,则允许用户继续游戏。
想知道这些 API 在游戏中的实战表现吗?请收看上方视频,聆听来自 Ravio 和 Supercell 的精彩案例分享。Ravio 利用上述 API 优化了《愤怒的小鸟 2》玩家排行榜;Supercell 则在《荒野乱斗》beta 版发布前大幅削减了非授权玩家的数量。
Ravio https://play.google.com/store/apps/dev?id=9133452689932095671&hl=en_GB Supercell https://play.google.com/store/apps/dev?id=6715068722362591614&hl=en_GB 《愤怒的小鸟 2》 https://play.google.com/store/apps/details?id=com.rovio.baba&hl=en_GB 《荒野乱斗》 https://play.google.com/store/apps/details?id=com.supercell.brawlstars&hl=en_GB
在客户端自动检查完整性
这些 API 并不适用于所有类型的游戏和用例。您的游戏可能主要在离线环境下运行,就像许多付费游戏和单人游戏一样。为此,我们正在积极寻找资深合作伙伴,邀请他们加入 Google Play 自动完整性保护开发者预览计划,携手为仅具备轻量服务器集成或者完全无服务器的游戏提供更好的支持。
Google Play 自动完整性保护
http://g.co/play/integrityprotection
对于加入该开发者预览计划的游戏,当您将游戏上传至 Google Play Console 管理中心后,Google Play 将以您的身份为代码添加一项证书检查以及反篡改保护。直至测试之前,您不必进行任何额外的开发工作,只需通过 Android App Bundle 发布游戏即可。这些保护措施的优势在于,它们会随着时间的推移自行优化与改进,并不需要开发者进行任何操作。此外,反篡改保护也可帮助网络游戏减少二次打包的问题。如果您希望为自己的游戏添加这些保护措施,欢迎您前往官网提交信息。
Android App Bundle https://developer.android.google.cn/platform/technology/app-bundle 前往官网提交信息 http://g.co/play/integrityprotection
公平性
对于提供应用内购买的游戏来说,公平的 "游戏内经济体系" 不仅有助于确保最佳的整体玩家体验,还能为您带来持续的业务增长。为了在游戏中取得不正当优势或谋取经济利益,不良行为者可能会以某些方式操控交易或商品,这将会对其他玩家和您的业务造成不良影响。您可以在游戏内集成由 Google Play Billing 提供的丰富工具,帮助 Google 检测并打击欺诈性交易和退款滥用行为。
Google Play Billing
https://developer.android.google.cn/distribute/play-billing
购买交易归因
https://developer.android.google.cn/google/play/billing/developer-payload#attribute
虚假购买
为了提高 Google Play 检测和阻止游戏中欺诈性购买的能力,我们建议您在每个购买请求中加入一些有关购买者的非个人识别信息。具体来说,您可以使用这些方法将经过混淆处理的账户 ID 附加到用户的每个购买请求中,如果您开发了多个游戏,则可在所有游戏内再添加一个可代表用户的个人资料 ID。Google 的风险引擎会根据这些 ID 评估当前交易是否属于欺诈性购买,并在二次销售行为发生前加以阻止。我们已经从顶尖开发者那里获得了许多积极的反馈: 在使用该 Google Play Billing 特性后,欺诈事件最高减少了 30%,退款损失最高降低了 50%。
使用这些方法 https://developer.android.google.cn/google/play/billing/security#fraud
无效购买
借助 voided purchases API,您可以随时向 Google Play 请求用户已退款的应用内购买列表。您可以根据这些信息更新用户账户中的商品,移除已退款的商品或对用户体验作出其它更改。这不仅有助于游戏内商品的保值,还能有效防止滥用行为的发生。超过 80% 的顶尖开发者已经在自己的游戏中集成了 voided purchases API,其中部分开发者向我们反馈表示,该 API 为他们减少了 80% 的退款损失。以下为 voided purchases API 的一些使用技巧,希望能对您有所帮助:
请定期调用 voided purchases API,用于更新用户所购项目列表;
从用户账户移除已退款的商品;
告知用户商品已被移除;
在收回商品失败时,请及时采取应对措施。若多次失败,请考虑升级响应措施,例如禁止用户继续购买;
如果用户已经花掉了游戏内货币,可以考虑将其余额设置为负数;
对于游戏内货币余额为负数的账户,可考虑限制游戏内功能或服务。
voided purchases API https://developer.android.google.cn/android-publisher/voided-purchases
安全
安全是 Android 开发中十分重要的话题,而且牵涉范围广泛,因此本文仅作简要探讨。一旦攻击者在您的游戏中发现漏洞并加以利用,便会给您带来严重的后果,例如对玩家造成安全威胁,引发负面社会舆情,在某些情况下您甚至还需要面临监管机构的罚款惩治。我们建议您在开发过程中,遵循安全性实践指南并依照安全清单对游戏进行评估。与此同时,请您务必谨慎处理数据、权限及网络流量方面的问题。
安全性实践指南
https://developer.android.google.cn/topic/security/best-practices
安全清单
https://developer.android.google.cn/docs/quality-guidelines/core-app-quality#sc
第三方库和 SDK
对 SDK 可访问的数据和设备信息进行分析,并确保 SDK 在访问数据前已获得用户同意; 确保 SDK 支持最低级别的 targetSdkVersion;
确保 SDK 无法收集不可重置的设备标识符;
在游戏卸载后,从外部储存移除所有 SDK 特定文件;
仅通过 HTTPS 协议向服务器传递信息。
有关 SDK 使用方法的实践指南 https://playacademy.exceedlms.com/student/activity/18797-build-and-distribute-privacy-friendly-apps
Google Play 安全奖励计划
https://www.google.com/about/appsecurity/play-rewards/
小结
不良行为者是任何产业都无法避免的问题,移动游戏行业自然也不例外。不论是小风险隐患,例如玩家只想在游戏中抢占不公平的优势,还是严重的安全威胁,如不法人士为谋私利恶意操控游戏和玩家,Google Play 都将提供更多工具与服务,帮助开发者采取正确的应对措施并制定全方位反滥用策略,以求最大程度降低玩家和游戏业务的风险。欢迎各位开发者向我们分享您的反馈与建议,协助我们进一步优化产品或弥补不足之处。
关于完整性保护您有什么看法呢?请留言分享您的见解与心得。
出海同学会
您的游戏/应用有出海市场吗?您了解如何使用 Google 提供的资源助力应用出海吗?点击下方进入 "出海同学会" 播客节目,收听出海大咖们带来的精彩分享与深度探讨!推荐阅读